package chapter11.Enum;

/**
 * @Auther: Tx
 * @Date: 2022/5/2 21:49
 */
public class EnumMethod {
    public static void main(String[] args) {
        Season2 spring = Season2.SPRING;
        System.out.println(spring.name());//输出对象的名称
        System.out.println(spring.ordinal());//输出的枚举对象的次序：从0开始编号
        Season2[] values = Season2.values();//获取定义的所有枚举对象，该方法在源代码中看不见。
        for (Season2 season : values) {
            //采用增强for循环，即依次取出values中的元素，赋值给season。
            System.out.println(season);
        }
//  valueof：将字符串转换为枚举对象，要求字符串必须为已有的常量名，否则报异常
// 1.根据输入的字符串到对应的枚举类中的对象去找
// 2.如果找到了，就返回，如果没找到，就报错。
        Season2 autumn = Season2.valueOf("AUTUMN");
        System.out.println(autumn);
//compareTo 方法
// 1.返回两个常量编号的差（看底层源码）
        System.out.println(Season2.AUTUMN.compareTo(Season2.SPRING));
    }
}

enum Season2 {
    SPRING("春天", "温暖"), SUMMER("夏天", "炎热"),
    AUTUMN("秋天", "凉爽"),
    WINTER("冬天", "寒冷");
    private String name;
    private String desc;

    private Season2(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return "name=" + getName() + "desc = " + getDesc();
    }
}

